Knowledge Editing
https://scrapbox.io/files/66cc2e3533c0bc001dff9ac8.png
MENDやROME/MEMITあたりがわりとよく知られているもの
手法の分類
https://scrapbox.io/files/66cc2e7b7501ff001cce4c73.png
1)外部記憶ベースの手法:外部メモリを活用し、事前に訓練された重みを変更することなく、新しい知識を編集のために保存する。新しい知識を外部パラメータに保存することで、モデルの本体構造に影響を及ぼすことなく知識を編集できるが、更新する知識量によってはストレージ容量が大きくなる欠点がある。
LLMアーキテクチャの外部にメモリを追加する手法(SERAC、KAFT、IKE)
補足パラメータを利用してLLMアーキテクチャを拡張する手法(CALINET、T-Patcher、GRACE)
2)全般的最適化(Global Optimization)手法:新しい知識のガイダンスによる最適化を通じて、新しい知識を事前に訓練されたLLMに汎用的に組み込むことを目指す。要するに通常の微調整(ファインチューン)の改良手法であり、微調整同様に全てのパラメータを更新するため、編集効率が低下する可能性がある。
既存の知識に影響が及びにくいように工夫した、制約付きの微調整手法(PPA、F-Learning、Editable Training)。依然として計算コストと不安定性が高い。
Hyper-Networkを中間モデルとして利用した微調整手法(KE、SLAG、MEND、KGEditor)
3)局所的修正(Local Modification)手法:LLMの中から特定の知識に関連するパラメータを探し出し、編集に関連する新しい知識を取り込む。記憶ベースの手法と比較してメモリ効率が大幅に向上し、全般的最適化と比較して計算効率が向上する。
モデルのFEN層の知識ニューロンを観察して編集する勾配ベースの手法(KD、MEMIT、PMET)
プロンプトを利用して編集すべき知識ニューロンを特定する手法(ROME、MEMIT CSK、BIRD) 外部にメモリ持つのもKnowledge Editingの一種(RAGっぽい)なんすね
ROME はSVO言語を前提とした知識ニューロンの特定を行っているため,言語構造の異なる言語に適用が難しいという制約をもつ.近年,SVO言語以外で事前学習されたLLMも数多く登場しており,特に日本語を含むSOV言語は世界の主要な言語構造の一つであるため,この制約は大きな課題である.
SVO言語:英語とかっすね
まず,(s,r) を含む不完全文を入力し,o を出力させ,oの出力確率p(o)と隠れ状態の活性を求める.次に,sに該当するトークンの埋め込みベクトルにノイズを加え,p(o)を出力させる.最後に,全ての隠れ状態に対して,隠れ状態の活性をノイズを加える前に求めた隠れ状態の活性に1つずつ置き換え,それぞれがどれだけp(o)に影響するか計算する.また,各ブロック内のMLP(MultiLayer Perceptron)モジュールと Attention モジュールそれぞれがどれだけp(o)に影響するかも計算する.その結果,p(o)に影響する隠れ状態は,sの最終トークン付近と出力付近に集中することが明らかになった.また,sの最後のトークン付近ではMLP層が,出力付近ではAttention層がそれぞれ隠れ状態に寄与することが明らかになった.
(s,r)って何?
,subject(主題)s,object(対象)o,および両者をつなぐrelation(関係)rを含む知識タプル(s,r,o)を考え,sとrを含む入力に対し,oを出力するとき,LLMは(s,r,o)に関する知識を有すると定義する.
なるほど、Windows Media Player is developed byと入力してoが出る確率ね
だからこそSVO言語に特化してるってことと理解
手法として、ノイズ加える前の状態に一個一個戻していって、全然p(o)に変化が見られなかったらそれは寄与してなくて、寄与してたらメッチャp(o)の確率が変わるよねって話か。それによって寄与してる隠れ層を判別できると
https://scrapbox.io/files/66cc395d671844001c581a86.png
確かにsの最後(by)のときニューロンがメチャ反応しとる。出力付近っていうのは層が深いところって感じか
https://scrapbox.io/files/66d55059278e36001dfc225d.png
複数のキー・バリューや層を跨いで記憶されている場合などはうまく処理できないことに注意
ROMEと同様にSVOの関係の知識を編集する
Michael Jordan now plays basketball → baseballみたいな。Oを知識と考える
この編集によって知識全体にアップデートが入る
論文の図をもとにメモ
https://scrapbox.io/files/672633628247825031260264.png
hの出力がマイケルジョーダンはバスケでなく野球になるようにいじる
hに関わる以外の重みは全て固定(グレーのとこ)
推論回して出力を出して、実際に欲しい出力との誤差を取る
これを逆伝播するわけだが、既存知識を崩さないように正則化項(?)的な役割持つ式とか導入しつつ導出した式で重みアップデート
この正則化項的な要素に係る係数λの大小で知識忘却への強さ弱さが出る
論文だとWikipediaの知識で一般知識を代替
https://scrapbox.io/files/672634aea4ce77138be19542.png